<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
        
    </body>
    <script>
        // 创建promise 对象
        const p = new Promise((resolve,reject)=>{
            setTimeout(()=>{
                resolve("用户数据");
                // reject('出错了!');
            },1000);
        });
        // 调用then方法  then方法返回结果是Promise对象,对象状态由回调函数的执行结果决定
        // 1.如果回调函数中返回的结果是非Promise类型的属性,状态为成功,返回值为对象的成功的值
        const result = p.then(value => {
            console.log(value);
            //1. 非promise类型的属性

            // return 123;

            //2. 是promise对象

            // return new Promise((resolve,reject)=>{
            //     // resolve("ok");
            //     reject('error');
            // })

            // 3.抛出错误
            throw new Error("出错了");
        }, reason => {
            console.warn(reason);
        });
        console.log(result);// 是promise 对象

        // then可以链式调用
        /*     p.then((value)=>{

            },(reason)=>{

            }).then((value)=>{

            },(reason)=>{
                
            }); */
            
        // 链式调用
        /* 
        p.then(value=>{

        }).then(value=>{

        }); 
        */
    </script>
</html>